1. Field of the Invention
The present invention relates generally to a system and method for compiling a computer program, and more particularly to a system and method for compiling a computer program wherein the computer program is adapted for use with a data parallel computer.
2. Related Art
A compiler is a computer program which receives a source program as input. The source program is written in a source language. The compiler translates the source program into an equivalent target program. The target program is written in a target language.
Many source and target languages are known. For example, source languages include Basic, Pascal, Fortran, C, and Lisp. Target languages include machine languages for computers having one or a great number of processors.
Compilers often include a module which optimizes the target program. This module is called, appropriately, an optimizer. Alternatively, the optimizer may be viewed as distinct from the compiler.
In compiling source programs, compilers often create and use temporary parallel variables. This is particularly true for compilers which support parallel data processing.
Temporary parallel variables require an enormous amount of memory space. Sometimes, the use of temporary parallel variables is necessary to properly compile the source program. Often, however, the use of temporary parallel variables is not necessary. In these later cases, the presence of temporary parallel variables in the target program is inefficient and wasteful.
Also, even when temporary parallel variables are necessary, the compiler may create and use temporary parallel variables which are larger than what is necessary. The use of larger than necessary temporary parallel variables is wasteful because, as noted above, the temporary parallel variables consume a great amount of memory space.
Therefore, a compiler (having an optimizer) which minimizes the number and size of temporary parallel variables is required.